package com.clusterswisdom.horn.api.tmall.action.bill;

import com.alibaba.fastjson.JSONObject;
import com.clusterswisdom.horn.api.ioc.HornAction;
import com.clusterswisdom.horn.api.ioc.HornResponse;
import com.clusterswisdom.horn.api.ioc.api.ApiConfig;
import com.clusterswisdom.horn.api.tmall.action.AbstractTmallAction;
/**
 * 获取账期内所有ebiz需要的账单(账期可以大于1天)
 * @author Jin_tian
 *
 */
public class GetEbizNeedBillsAction extends AbstractTmallAction implements HornAction{
	
	@Override
	public HornResponse execute(ApiConfig config, JSONObject param)
			throws Exception {
//		List<Bill> bills=getDaysBills(param);
//			
//		List<EbizBill> ebizBills=getEbizBills(bills,param);
//		return new HornResponse(true, ebizBills);
		return null;
	}
	
	
	/**
	 * 获取ebiz所需的账单列表
	 * @param 账单列表
	 * @return ebiz需要的账单列表
	 * @throws Exception 
	 */
//	public List<EbizBill> getEbizBills(List<Bill> bills,JSONObject param) throws Exception{
//		List<EbizBill> ebizBills=new ArrayList<EbizBill>();
//		for(Bill bill:bills){
//			EbizBill ebizBill=new EbizBill();
//			ebizBill.setAmount(bill.getTotalAmount());
//			if(bill.getTotalAmount() < 0){
//				ebizBill.setRefundFee(Math.abs(bill.getTotalAmount()));
//			}else{
//				ebizBill.setRefundFee(0);
//			}
//			String tradeId=bill.getTradeId();
//			
//			param.put("tid", tradeId);
//			TradeGetResponse response=(TradeGetResponse)TmallInstance.getInstance().executeRequest(param, "trade","tradeGet");
//			ebizBill.setGoodsFee(response.getTrade().getTotalFee());
//			ebizBill.setPostFee(response.getTrade().getPostFee());
//			ebizBill.setPointFee(response.getTrade().getBuyerObtainPointFee());
//			ebizBill.setCommissionFee(response.getTrade().getCommissionFee());
//			
//			//商品id
//			String goodId=response.getTrade().getNumIid().toString();
//			//爱淘宝商品列表
//			List<AitaobaoItem> aitaobaoItems=getAitaobaoItems();
//			for(AitaobaoItem aitaobaoItem:aitaobaoItems){
//				if(aitaobaoItem.getOpenIid() == goodId){
//					ebizBill.setCommission(aitaobaoItem.getCommission());
//				}
//			}
//			ebizBills.add(ebizBill);
//		}
//		return ebizBills;
//	}
//	
//	/**
//	 * 轮胎对应淘客商品列表
//	 * @return 轮胎对应爱淘客商品列表
//	 * @throws Exception 
//	 */
//	public List<AitaobaoItem> getAitaobaoItems() throws Exception{
//		AtbItemsGetResponse response=(AtbItemsGetResponse)TmallInstance.getInstance().executeRequest(new JSONObject(), "tbk", "atbItemsGet");
//		return response.getItems();
//	}
//	
//	protected List<Bill> getDaysBills(JSONObject param) throws Exception {
//		Calendar begin = getBeginDate(param);
//		Calendar end = getEndDate(param);
//		List<Bill> bills=new LinkedList<Bill>();
//		
//		while (begin.before(end)) {
//			param.put("start_time", begin.getTime());
//			begin.add(Calendar.DAY_OF_YEAR, 1);
//			param.put("end_time", begin.getTime());
//			
//			int pageNo = 1;
//			BillBillsGetResponse response = null;
//			do {
//				param.put("page_no", pageNo++);
//				response = (BillBillsGetResponse)TmallInstance.getInstance().executeRequest(param, "bill", "billBillsGet");
//				if(response.isSuccess() && response.getBills() != null && response.getBills().size() > 0){
//					bills.addAll(response.getBills());
//				}
//			} while(response.getHasNext());
//		}
//		
//		return bills;
//	}
//	
//	private Calendar getBeginDate(JSONObject param) {
//		Date begin = param.getDate("startTime");
//		if (begin == null) {
//			begin = new Date();
//		}
//		
//		Calendar calendar = Calendar.getInstance();
//		calendar.setTime(begin);
//		calendar.set(Calendar.HOUR_OF_DAY, 0);
//		calendar.set(Calendar.MINUTE, 0);
//		calendar.set(Calendar.SECOND, 0);
//		calendar.set(Calendar.MILLISECOND, 0);
//		
//		return calendar;
//	}
//	
//	private Calendar getEndDate(JSONObject param) {
//		Date end = param.getDate("lastTime");
//		if (end == null) {
//			end = new Date();
//		} 
//		
//		Calendar calendar = Calendar.getInstance();
//		calendar.setTime(end);
//		calendar.set(Calendar.HOUR_OF_DAY, 0);
//		calendar.set(Calendar.MINUTE, 0);
//		calendar.set(Calendar.SECOND, 0);
//		calendar.set(Calendar.MILLISECOND, 0);
//		calendar.add(Calendar.DAY_OF_YEAR, 1);
//		
//		return calendar;
//	}
}
